{$CLEO .qa}
{$USE CLEO+}
{$USE newOpcodes}
{$USE ini}

0000: NOP

script_name "ImprB2"

// By ArtemQa146g

const
    ped_1 = 31@
    ped_2 = 30@
    ped_3 = 29@
    obj = 28@
    obj_2 = 27@
end

0AF0: 0@ = read_int_from_ini_file "cleo\Improved interiors.ini" section "Models" key "HairCLipper"


            if
                0EEA: locate_char_distance_to_coordinates $player_actor pos 411.7517 -15.7625 1001.8047 radius 10.0
            then
            
                repeat
                wait 0
                04ED: load_animation  "PedEventsMod"
                until 04EE:   animation "PedEventsMod" loaded
                
                model.Load(176)
                0209: 1@ = random_int_in_ranges 1 6
                if 1@ == 1
                then 2@ = 59
                end
                if 1@ == 2
                then 2@ = 21
                end
                if 1@ == 3
                then 2@ = 20
                end
                if 1@ == 4
                then 2@ = 43
                end
                if 1@ == 5
                then 2@ = 46
                end
                model.Load(2@)
                
                if
                    not model.Available(176)
                then
                    repeat
                    wait 0
                    model.Load(176)
                    until model.Available(176)
                end
                if
                    not model.Available(2@)
                then
                    repeat
                    wait 0
                    model.Load(2@)
                    until model.Available(2@)
                end
                
                038B: load_requested_models
                009A: ped_1 = create_actor_pedtype 4 model 176 at 414.7504 -15.7727 1001.8047
                0F02: create_render_object_to_char_bone_from_special ped_1 special_model 0@ bone 34 offset 0 0.08 0 rotation 0 180.0 180.0 store_to 1@
                009A: ped_2 = create_actor_pedtype 4 model 2@ at 414.43 -16.7721 1001.8047
                0376: ped_3 = create_random_actor_at 411.7517 -15.7625 1001.8047
                0E24: fix_char ped_1 ground 1 brightness 1 and_fade_in 0
                0E24: fix_char ped_2 ground 1 brightness 1 and_fade_in 0
                0E24: fix_char ped_3 ground 1 brightness 1 and_fade_in 0
                0173: set_actor ped_1 Z_angle_to 180.50583
                0173: set_actor ped_2 Z_angle_to 87.8791
                0173: set_actor ped_3 Z_angle_to 270.4941
                model.Destroy(176)
                model.Destroy(2@)
                
                077E: get_active_interior_to 1@
                0860: link_actor Ped_1 to_interior 1@
                0860: link_actor Ped_2 to_interior 1@
                0860: link_actor Ped_3 to_interior 1@

                    // .      'BARB'.
                    
                    if 056D:   actor ped_1 defined //   
                    then 0812: AS_actor ped_1 perform_animation "BRB_Buy" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionBw
                    end
                    
                    if 056D:   actor ped_2 defined //   
                    then 0812: AS_actor ped_2 perform_animation "BRB_Hair_01" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                    end
                    
                    if 056D:   actor ped_3 defined //   
                    then 0812: AS_actor ped_3 perform_animation "LOU_Loop" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                    end
                    
                    04EF: release_animation "PedEventsMod"


                repeat
                wait 0
                gosub @Check_peds
                
                0AAA: 1@ = get_script_struct_named 'BARB' //  /
                until 1@ == 0 //    
                gosub @Destroy_peds
                0A93: terminate_this_custom_script
            end
            
            if
                0EEA: locate_char_distance_to_coordinates $player_actor pos 418.9449 -81.9511 1001.8047 radius 10.0
            then
                
                repeat
                wait 0
                04ED: load_animation  "PedEventsMod"
                until 04EE:   animation "PedEventsMod" loaded
                
                model.Load(176)
                0209: 1@ = random_int_in_ranges 1 6
                if 1@ == 1
                then 2@ = 59
                end
                if 1@ == 2
                then 2@ = 21
                end
                if 1@ == 3
                then 2@ = 20
                end
                if 1@ == 4
                then 2@ = 43
                end
                if 1@ == 5
                then 2@ = 46
                end
                model.Load(2@)

                038B: load_requested_models
                009A: ped_1 = create_actor_pedtype 4 model 176 at 422.2446 -76.9042 1001.8047
                0F02: create_render_object_to_char_bone_from_special ped_1 special_model 0@ bone 34 offset 0 0.08 0 rotation 0 180.0 180.0 store_to 1@
                009A: ped_2 = create_actor_pedtype 4 model 2@ at 421.3479 -77.9547 1001.8047
                0376: ped_3 = create_random_actor_at 417.66 -79.3541 1001.8047
                0E24: fix_char ped_1 ground 1 brightness 1 and_fade_in 0
                0E24: fix_char ped_2 ground 1 brightness 1 and_fade_in 0
                0E24: fix_char ped_3 ground 1 brightness 1 and_fade_in 0
                0173: set_actor ped_1 Z_angle_to 272.5792
                0173: set_actor ped_2 Z_angle_to 95.7241
                0173: set_actor ped_3 Z_angle_to 270.084
                model.Destroy(176)
                model.Destroy(2@)
                
                077E: get_active_interior_to 1@
                0860: link_actor Ped_1 to_interior 1@
                0860: link_actor Ped_2 to_interior 1@
                0860: link_actor Ped_3 to_interior 1@

                    // .      'BARB'.

                    if 056D:   actor ped_1 defined //   
                    then 0812: AS_actor ped_1 perform_animation "Homeless" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionBw
                    end

                    if 056D:   actor ped_2 defined //   
                    then 0812: AS_actor ped_2 perform_animation "BRB_Hair_01" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                    end

                    if 056D:   actor ped_3 defined //   
                    then 0812: AS_actor ped_3 perform_animation "LOU_Loop" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                    end

                    04EF: release_animation "PedEventsMod"
                

                repeat
                wait 0
                gosub @Check_peds

                0AAA: 1@ = get_script_struct_named 'BARB' //  /
                until 1@ == 0 //    
                gosub @Destroy_peds
                0A93: terminate_this_custom_script
            end
            
            if
                0EEA: locate_char_distance_to_coordinates $player_actor pos 411.5514 -51.3448 1001.8984 radius 10.0
            then
            
                repeat
                wait 0
                04ED: load_animation  "PedEventsMod"
                until 04EE:   animation "PedEventsMod" loaded

                model.Load(177)
                0209: 1@ = random_int_in_ranges 1 6
                if 1@ == 1
                then 2@ = 59
                end
                if 1@ == 2
                then 2@ = 21
                end
                if 1@ == 3
                then 2@ = 20
                end
                if 1@ == 4
                then 2@ = 43
                end
                if 1@ == 5
                then 2@ = 46
                end
                model.Load(2@)

                038B: load_requested_models
                009A: ped_1 = create_actor_pedtype 4 model 177 at 415.0714 -54.1873 1001.8984
                0376: ped_2 = create_random_actor_at 409.8551 -49.2626 1001.8984
                0376: ped_3 = create_random_actor_at 409.4956 -50.75 1001.8984
                0E24: fix_char ped_1 ground 1 brightness 1 and_fade_in 0
                0E24: fix_char ped_2 ground 1 brightness 1 and_fade_in 0
                0E24: fix_char ped_3 ground 1 brightness 1 and_fade_in 0
                0173: set_actor ped_1 Z_angle_to 267.0959
                0173: set_actor ped_2 Z_angle_to 171.3834
                0173: set_actor ped_3 Z_angle_to 282.2202
                model.Destroy(177)
                model.Destroy(2@)
                
                077E: get_active_interior_to 1@
                0860: link_actor Ped_1 to_interior 1@
                0860: link_actor Ped_2 to_interior 1@
                0860: link_actor Ped_3 to_interior 1@

                    // .      'BARB'.

                    if 056D:   actor ped_1 defined //   
                    then 0812: AS_actor ped_1 perform_animation "Repair_2" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionBw
                    end

                    if 056D:   actor ped_2 defined //   
                    then 0812: AS_actor ped_2 perform_animation "LOU_Loop" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                    end

                    if 056D:   actor ped_3 defined //   
                    then 0812: AS_actor ped_3 perform_animation "LOU_Loop" IFP "PedEventsMod" framedelta 100.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
                    end

                    04EF: release_animation "PedEventsMod"


                repeat
                wait 0
                gosub @Check_peds

                0AAA: 1@ = get_script_struct_named 'BARB' //  /
                until 1@ == 0 //    
                gosub @Destroy_peds
                0A93: terminate_this_custom_script
            end
            
            
0A93: terminate_this_custom_script


:Check_peds
if
    056D:   actor ped_1 defined
then
    080E: get_actor ped_1 ped_event_to 1@
    if or
        051A:   actor ped_1 damaged_by_actor $PLAYER_ACTOR
        0118:   actor ped_1 dead
        1@ == 49
        1@ == 9
        1@ == 15
        1@ == 31
        1@ == 59
    then
        01C2: remove_references_to_actor ped_1 // Like turning an actor into a random pedestrian
    end
            if
                0457:   player $PLAYER_CHAR aiming_at_actor ped_1
            then
                0E83: get_current_char_weaponinfo $PLAYER_ACTOR store_to 1@
                0E89: get_weaponinfo_fire_type 1@ store_to 2@ //     
                if or
                    2@ == 1 //  
                    2@ == 3 //   (  ..)
                then
                    01C2: remove_references_to_actor ped_1 // Like turning an actor into a random pedestrian
                end
            end
end
if
    056D:   actor ped_2 defined
then
    080E: get_actor ped_2 ped_event_to 1@
    if or
        051A:   actor ped_2 damaged_by_actor $PLAYER_ACTOR
        0118:   actor ped_2 dead
        1@ == 49
        1@ == 9
        1@ == 15
        1@ == 31
        1@ == 59
    then
        01C2: remove_references_to_actor ped_2 // Like turning an actor into a random pedestrian
    end
            if
                0457:   player $PLAYER_CHAR aiming_at_actor ped_2
            then
                0E83: get_current_char_weaponinfo $PLAYER_ACTOR store_to 1@
                0E89: get_weaponinfo_fire_type 1@ store_to 2@ //     
                if or
                    2@ == 1 //  
                    2@ == 3 //   (  ..)
                then
                    01C2: remove_references_to_actor ped_2 // Like turning an actor into a random pedestrian
                end
            end
end
if
    056D:   actor ped_3 defined
then
    080E: get_actor ped_3 ped_event_to 1@
    if or
        051A:   actor ped_3 damaged_by_actor $PLAYER_ACTOR
        0118:   actor ped_3 dead
        1@ == 49
        1@ == 9
        1@ == 15
        1@ == 31
        1@ == 59
    then
        01C2: remove_references_to_actor ped_3 // Like turning an actor into a random pedestrian
    end
            if
                0457:   player $PLAYER_CHAR aiming_at_actor ped_3
            then
                0E83: get_current_char_weaponinfo $PLAYER_ACTOR store_to 1@
                0E89: get_weaponinfo_fire_type 1@ store_to 2@ //     
                if or
                    2@ == 1 //  
                    2@ == 3 //   (  ..)
                then
                    01C2: remove_references_to_actor ped_3 // Like turning an actor into a random pedestrian
                end
            end
end
return

:Destroy_peds
if 056D:   actor ped_1 defined
then 009B: destroy_actor ped_1
end
if 056D:   actor ped_2 defined
then 009B: destroy_actor ped_2
end
if 056D:   actor ped_3 defined
then 009B: destroy_actor ped_3
end
return
